package com.mjf.scala.chapter08

/**
 * 模式匹配实现   简单的两个整数运算
 */
object Scala01_TestMatch {
  def main(args: Array[String]): Unit = {

    var a: Int = 10
    var b: Int = 20

    var op: Char = 'X'

    // 模式匹配是有返回值
    // 模式匹配中，没有break关键字，case分支执行结束后，直接跳出
    val res: Any = op match {
      case '+' => a + b
      case '-' => a - b
      case '*' => a * b
      case '/' => a / b
      case _ => "运算符不合符"
    }

    println(res)


    // 模式守卫
    def abs(num: Int): Int = {  // 通过模式守卫，求一个整数的绝对值
      num match {
        case i: Int if i >= 0 => i
        case j: Int if j < 0 => -j
      }
    }

    println(abs(-5))  // 5

  }
}
